# Интересные вопросы по Python

1. Какие типы данных являются изменяемыми / неизменяемыми?
    <details>
    <summary>Ответ</summary>
    Изменяемые:
        list, dict, set
    Неизменяемые:
        int, float, string, tuple, frozenset
    </details>

2. Как можно избежать проблемы при обращени к словарю по несуществующему ключу?
    <details>
    <summary>Ответ</summary>
    Можно использовать конструкцию defaultdict(<тип значения>), либо вызывать метод словаря .get(<ключ>, <значение по умолчанию>)
    </details>

3. Расскажите об опасности использования изменяемых аргументов по умолчанию?
Пример кода:
```
from typing import List

def foo(val: int, data: List = []):
    data.append(val)
    return data

a = foo(1)
b = foo(3)

print(a, b, sep='\n')
```

4. Разница между ```is``` и ```==```?
    <details>
    <summary>Ответ</summary>
    </details>